Skip to content

fix: resolve key rotation conflicts with main#3313

Merged
julienrbrt merged 18 commits intomarko/key_rotationfrom
randygrok/marko-key-rotation
May 8, 2026
Merged

fix: resolve key rotation conflicts with main#3313
julienrbrt merged 18 commits intomarko/key_rotationfrom
randygrok/marko-key-rotation

Conversation

@randygrok
Copy link
Copy Markdown
Contributor

Summary

This PR merges origin/main into marko/key_rotation and resolves the resulting conflicts.

The manual conflict resolution keeps the key rotation changes that return execution.ExecuteResult and NextProposerAddress, while preserving the newer main changes that encode transactions through TxBatch and move execution gRPC protobufs under execution/grpc.

Validation

  • rg -n '<<<<<<<|>>>>>>>'
  • git diff --cached --check
  • cargo clean -p ev-types && just rust-proto-check
  • go test -count=1 ./... in execution/grpc
  • go test -count=1 ./... in execution/evm

dependabot Bot and others added 15 commits April 28, 2026 10:19
#3291)

* build(deps): Bump the all-go group across 8 directories with 7 updates

Bumps the all-go group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2/service/kms](https://github.com/aws/aws-sdk-go-v2) | `1.50.5` | `1.51.0` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.25.0` | `1.25.1` |
| [github.com/libp2p/go-libp2p-pubsub](https://github.com/libp2p/go-libp2p-pubsub) | `0.15.0` | `0.16.0` |
| [github.com/rs/zerolog](https://github.com/rs/zerolog) | `1.35.0` | `1.35.1` |
| [google.golang.org/api](https://github.com/googleapis/google-api-go-client) | `0.274.0` | `0.276.0` |

Bumps the all-go group with 1 update in the /apps/evm directory: [github.com/rs/zerolog](https://github.com/rs/zerolog).
Bumps the all-go group with 1 update in the /apps/grpc directory: [github.com/rs/zerolog](https://github.com/rs/zerolog).
Bumps the all-go group with 1 update in the /apps/testapp directory: [github.com/rs/zerolog](https://github.com/rs/zerolog).
Bumps the all-go group with 2 updates in the /execution/evm directory: [github.com/rs/zerolog](https://github.com/rs/zerolog) and [github.com/evstack/ev-node](https://github.com/evstack/ev-node).
Bumps the all-go group with 1 update in the /execution/grpc directory: [github.com/evstack/ev-node](https://github.com/evstack/ev-node).
Bumps the all-go group with 1 update in the /test/docker-e2e directory: [github.com/celestiaorg/tastora](https://github.com/celestiaorg/tastora).
Bumps the all-go group with 2 updates in the /test/e2e directory: [github.com/rs/zerolog](https://github.com/rs/zerolog) and [github.com/celestiaorg/tastora](https://github.com/celestiaorg/tastora).


Updates `github.com/aws/aws-sdk-go-v2/service/kms` from 1.50.5 to 1.51.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](aws/aws-sdk-go-v2@service/ssm/v1.50.5...service/s3/v1.51.0)

Updates `github.com/aws/smithy-go` from 1.25.0 to 1.25.1
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](aws/smithy-go@v1.25.0...v1.25.1)

Updates `github.com/libp2p/go-libp2p-pubsub` from 0.15.0 to 0.16.0
- [Release notes](https://github.com/libp2p/go-libp2p-pubsub/releases)
- [Commits](libp2p/go-libp2p-pubsub@v0.15.0...v0.16.0)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `google.golang.org/api` from 0.274.0 to 0.276.0
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.274.0...v0.276.0)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `github.com/evstack/ev-node` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/evstack/ev-node/releases)
- [Changelog](https://github.com/evstack/ev-node/blob/main/CHANGELOG.md)
- [Commits](v1.1.0...v1.1.1)

Updates `github.com/evstack/ev-node` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/evstack/ev-node/releases)
- [Changelog](https://github.com/evstack/ev-node/blob/main/CHANGELOG.md)
- [Commits](v1.1.0...v1.1.1)

Updates `github.com/celestiaorg/tastora` from 0.17.0 to 0.19.0
- [Release notes](https://github.com/celestiaorg/tastora/releases)
- [Commits](celestiaorg/tastora@v0.17.0...v0.19.0)

Updates `github.com/rs/zerolog` from 1.35.0 to 1.35.1
- [Commits](rs/zerolog@v1.35.0...v1.35.1)

Updates `github.com/celestiaorg/tastora` from 0.16.1-0.20260312082036-2ee1b0a2ac4e to 0.19.0
- [Release notes](https://github.com/celestiaorg/tastora/releases)
- [Commits](celestiaorg/tastora@v0.17.0...v0.19.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/kms
  dependency-version: 1.51.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go
- dependency-name: github.com/aws/smithy-go
  dependency-version: 1.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/libp2p/go-libp2p-pubsub
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: google.golang.org/api
  dependency-version: 0.276.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/evstack/ev-node
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/evstack/ev-node
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/celestiaorg/tastora
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go
- dependency-name: github.com/rs/zerolog
  dependency-version: 1.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go
- dependency-name: github.com/celestiaorg/tastora
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go
...

Signed-off-by: dependabot[bot] <support@github.com>

* tidy

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
…d_yarn group across 1 directory (#3292)

build(deps): Bump postcss

Bumps the npm_and_yarn group with 1 update in the /docs directory: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.5.8 to 8.5.12
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.8...8.5.12)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add a `changes` job using dorny/paths-filter to detect whether any
non-documentation files were modified. All heavy jobs (lint, docker,
test, docker-tests, proto) are gated behind this check and skipped
when the PR only touches docs/** or markdown files.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: better code readability

* chore: restore yarn.lock to main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(style): address PR review feedback

- Add `"type": "dark"` to ev-dark.json theme manifest
- Raise punctuation token contrast from #505050 to #767676 (WCAG AA)
- Align --vp-code-block-color CSS var with ev-dark default text (#dbd7ca)
- Use ThemeRegistration type instead of `as any` in config.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: ev-node high availability

* docs: node placement

* docs(ha): address PR review feedback

Critical fixes:
- Fix snapshot_threshold math: 5000 ÷ 10 = 500s ≈ 8.3 min (not 83s)
- Fix trailing_logs math: 18000 ÷ 10 = 1800s = 30 min (not 5 min)

Medium fixes:
- Fix heartbeat_timeout description: it is a follower-side election trigger,
  not the interval at which the leader sends heartbeats
- Add explicit restart instruction after Step 5 data copy in single-to-ha.md
  so the chain keeps producing blocks during preparation (Steps 6-8)
- Replace priv_validator_key.json with signer.json in single-to-ha.md
  to match cluster-setup.md and the E2E tests

Minor fixes:
- Exclude self from raft.peers in all examples (cluster-setup.md node-1
  yaml/CLI/systemd, single-to-ha.md node-1 and node-2)
- Add "exclude local node" note to raft.peers description in overview.md
- Fix P2P port in overview.md Interaction with P2P section (7676 → 26656)
- Add text language tag to all bare fenced blocks (MD040): multiaddr
  example, RTT equations, and all log snippets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): absorb raft_production.md into ha/overview.md

raft_production.md had no sidebar entry and its content was fully
superseded by the new ha/ guides. Extract the three pieces that were
unique to it — bootstrap flag docs, auto-detection startup mode
explanation, and static-membership limitation note — into
ha/overview.md, then delete the file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): use EnvironmentFile for signer passphrase

Passing --evnode.signer.passphrase inline exposes the secret in
ps aux, journalctl, and shell history.

- Add EnvironmentFile=/etc/ev-node/env (chmod 600) to the systemd
  unit in cluster-setup.md with setup instructions
- Replace all inline <YOUR_PASSPHRASE> occurrences with
  $EV_SIGNER_PASSPHRASE sourced from /etc/ev-node/env in every
  evm start / evm init snippet across both guides

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): explicit node-2 peers and action-based rolling restart

- Replace "peers list is identical" stub in node-2 config with an
  explicit peers list that excludes node-2 itself, and add a note
  that each node must omit itself from raft.peers
- Replace "Wait ~30 seconds" in rolling restart with journalctl
  one-liners that exit as soon as the node logs follower/leader state,
  giving a deterministic signal instead of an arbitrary timeout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): fix raft.peers self-inclusion startup bug

The abbreviated node-2 snippet with "# peers list is identical" caused
a startup failure: with raft_addr=0.0.0.0:5001 the bootstrap code's
literal address comparison does not recognise node-2@10.0.0.2:5001 as
self, so node-2 is appended twice and deduplicateServers returns
"duplicate peers found in config".

- Fix intro text: "only raft.node_id and raft_addr differ" →
  "raft.node_id is unique; raft.peers and p2p.peers must exclude self"
- Expand node-2 snippet to a full evnode.yaml with the correct peers
  list (node-1, node-3, node-4, node-5 — no node-2) and an inline
  explanation of the wildcard address pitfall
- Align overview.md trailing_logs example to 1 block/s (matching
  block_time: "1s" used throughout) and note the 10 block/s rate too

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): fix passphrase flag and failover kill cardinality check

Replace non-existent --evnode.signer.passphrase with the actual
--evnode.signer.passphrase_file flag throughout cluster-setup and
single-to-ha guides. Update passphrase setup to create a chmod 600
file at /etc/ev-node/passphrase referenced directly by the flag.

Add mapfile-based cardinality check in the failover test fallback
kill command to guard against killing the wrong process.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(ha): fix RPC endpoints, init ordering, and snap_count CLI flag

Replace incorrect CometBFT RPC calls (port 26657/status) with the
actual ev-node HTTP API (port 7331 /health/ready, /raft/node) and
EVM execution layer (cast block latest) throughout both guides.

Align single-to-ha Step 2 init ordering with cluster-setup: create
passphrase file before evm init so the signer key is encrypted from
the start, and pass --evnode.node.aggregator and passphrase_file flags.

Fix Step 9a fallback kill in single-to-ha to use mapfile cardinality
check, matching the pattern already applied in cluster-setup.

Add --evnode.raft.snap_count=3 to the CLI start example to match
the YAML config block.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* perf(store): save metadata async

* cl

* Optimize metadata writes with batching

* feedback

* De-duplicate batched writes by key in cached store

* fix

* updates
* fix security deps

* fix helpers
…tions (#3297)

* add grpc socket and flattn tx batches to allow for lower allocations

* redo proto

* docs: update changelog for grpc execution transport

* remove extra txs
)

* refactor(execution/grpc): move execution service where it belongs

* reduce diff

* fix lint
* feat: adding support for grpc oltp

* chore: fix linting

* cl

---------

Co-authored-by: Julien Robert <julien@rbrt.fr>
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3 to 4.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](dorny/paths-filter@v3...v4)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(pkg/sequencers): add queue limit in solo sequencer

* use option

* cl

* move test files
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 7, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 37df7c4c-31c4-4905-8576-10248623e80a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch randygrok/marko-key-rotation

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented May 7, 2026

Claude finished @randygrok's task in 3m 50s —— View job


Code Review

This PR merges main into marko/key_rotation, resolving conflicts while preserving key rotation changes (ExecuteResult / NextProposerAddress) and main's TxBatch encoding + execution/grpc restructuring. Overall the merge resolution looks correct. I found a few issues ranging from a latent deadlock to dead proto fields.


  • Gather context and read AGENTS.md
  • Review execution/grpc changes (client, server, tx_batch, unix, otel_propagation)
  • Review execution/grpc proto and generated pb.go changes
  • Review pkg/store changes (cached_store, tracing, types)
  • Review pkg/sequencers changes (solo, single, based)
  • Review types/state.go and block package changes
  • Review CI/workflow and buf changes
  • Review test coverage and test quality
  • Compile and post final review

Findings

1. Potential Deadlock in CachedStore.SetMetadata / DeleteMetadata — Medium

pkg/store/cached_store.go:256-278

SetMetadata and DeleteMetadata hold stopMu.RLock() while blocking on the buffered channel send:

cs.stopMu.RLock()
defer cs.stopMu.RUnlock()

if cs.stopped { ... }
cs.writeCh <- asyncWriteOp{...}   // blocks if channel is full

Close() then tries to acquire stopMu.Lock():

cs.stopMu.Lock()
cs.stopped = true
close(cs.writeCh)
cs.stopMu.Unlock()

An RWMutex Write lock cannot be acquired while any Read lock is held. If the channel reaches capacity (8192 items) while Close() is concurrently called, SetMetadata blocks on the channel send indefinitely while holding the Read lock, and Close() blocks on the Write lock indefinitely. Neither can proceed — this is a deadlock. Under the current workload (3–4 metadata writes per block) this is unlikely but possible under sustained write bursts or I/O slowdowns.

Suggestion: Release the RLock before the channel send (using a re-check pattern to guard against closed-channel panics), or use select { case cs.writeCh <- op: default: /* fall back to sync */ }.

Fix this →


2. Dead Proto Field in ExecuteTxsResponse — Low

execution/grpc/proto/evnode/v1/execution.proto:94

message ExecuteTxsResponse {
  bytes updated_state_root = 1;
  uint64 max_bytes = 2;          // never set, never read
  bytes next_proposer_address = 3;
}

Field max_bytes (2) is not populated by the server (server.go:126-129 omits it) and not read by the client (client.go:173-176 ignores it). It appears to be a leftover. If it's intended for a future protocol change, it should have a comment saying so. Otherwise it should be reserved out to avoid confusion.

Fix this →


3. http.Serve Is Deprecated — Low

execution/grpc/unix.go:51

return http.Serve(listener, NewExecutorServiceHandler(executor, opts...))

http.Serve was deprecated in Go 1.24 in favour of (*http.Server).Serve. With this project on Go 1.25, golangci-lint will flag this. The standard replacement is:

srv := &http.Server{Handler: NewExecutorServiceHandler(executor, opts...)}
return srv.Serve(listener)

Fix this →


4. Misleading Doc Comment in ListenAndServeUnix — Low

execution/grpc/unix.go:38-39

"deferred cleanup closes the listener with listener.Close and then removes the socket with removeStaleUnixSocket"

Deferred functions execute in LIFO order. The actual execution order is:

  1. removeStaleUnixSocket (deferred second, so runs first)
  2. listener.Close() (deferred first, so runs last)

The comment has the order reversed. Should read: "removes the socket with removeStaleUnixSocket and then closes the listener".

Fix this →


5. Flaky time.Sleep in OTel Test — Low

execution/grpc/otel_propagation_test.go:208

time.Sleep(10 * time.Millisecond)

TestEndToEndParentChildAcrossServerClientHop sleeps 10 ms to let spans propagate before asserting. This is a flaky pattern — under load, spans may not have been recorded by the time assertions run, and under fast CI the sleep is wasted time. The test already has direct control of span creation; the assertions could be wrapped with a retry loop or the spans could be explicitly synced via tp.ForceFlush(ctx).


6. testUnixSocketPath Uses os.TempDir() Instead of t.TempDir() — Very Low

execution/grpc/unix_test.go:50-59

socketPath := filepath.Join(
    os.TempDir(),                                        // ← manual path
    fmt.Sprintf("ev-node-grpc-%d-%d.sock", os.Getpid(), time.Now().UnixNano()),
)
t.Cleanup(func() { _ = os.Remove(socketPath) })

TestListenUnixRejectsNonSocketPath in the same file correctly uses t.TempDir(). The manual approach is fine but inconsistent. t.TempDir() is idiomatic Go and removes the directory automatically on test failure/success.


What's Well Done

  • TxBatch encoding/decoding (tx_batch.go): the 3-index slice trick (batch.Data[offset:end:end]) cleanly prevents decoded sub-slices from sharing underlying capacity, which the test explicitly validates.
  • unix.go stale-socket handling: refuses to os.Remove paths that aren't sockets, preventing accidental deletion of regular files.
  • SoloSequencer all-or-nothing queue limit: the comment at sequencer.go:110-115 clearly explains why partial admission is avoided — good defensive design.
  • OTel propagation tests: four scenarios covering trace-ID continuity, outbound headers, baggage, and multi-hop are thorough.
  • Proto backward compatibility: reserved 1; reserved "txs"; in GetTxsRequest, ExecuteTxsRequest, and FilterTxsRequest correctly retires the old txs field before migrating to TxBatch.
  • tracedStore compile-time check: var _ Store = (*tracedStore)(nil) at the top of tracing.go catches missing interface methods immediately.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed⏩ skipped✅ passed⏩ skippedMay 7, 2026, 9:32 AM

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-05-08 07:39 UTC

@randygrok randygrok changed the title merge: resolve key rotation conflicts with main fix: resolve key rotation conflicts with main May 7, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 7, 2026

Codecov Report

❌ Patch coverage is 59.09091% with 135 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (marko/key_rotation@04f6b12). Learn more about missing BASE report.

Files with missing lines Patch % Lines
execution/grpc/types/pb/evnode/v1/execution.pb.go 0.00% 64 Missing ⚠️
execution/grpc/unix.go 35.48% 17 Missing and 3 partials ⚠️
pkg/store/tracing.go 0.00% 14 Missing ⚠️
pkg/store/store.go 33.33% 5 Missing and 5 partials ⚠️
pkg/sequencers/solo/sequencer.go 82.05% 6 Missing and 1 partial ⚠️
pkg/store/cached_store.go 87.27% 5 Missing and 2 partials ⚠️
execution/grpc/client.go 85.71% 3 Missing and 3 partials ⚠️
execution/grpc/tx_batch.go 90.47% 2 Missing and 2 partials ⚠️
execution/grpc/server.go 83.33% 1 Missing and 1 partial ⚠️
types/state.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@                  Coverage Diff                  @@
##             marko/key_rotation    #3313   +/-   ##
=====================================================
  Coverage                      ?   60.65%           
=====================================================
  Files                         ?      127           
  Lines                         ?    13830           
  Branches                      ?        0           
=====================================================
  Hits                          ?     8389           
  Misses                        ?     4510           
  Partials                      ?      931           
Flag Coverage Δ
combined 60.65% <59.09%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@randygrok randygrok marked this pull request as ready for review May 7, 2026 15:46
@julienrbrt julienrbrt merged commit 0b7bb5a into marko/key_rotation May 8, 2026
39 checks passed
@julienrbrt julienrbrt deleted the randygrok/marko-key-rotation branch May 8, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants